ActionController::Routing::Routes.draw do |map|
  map.resources :tools
  
  map.resources :shim_outputs
  
  map.resources :shim_inputs
  
  map.resources :shims, :has_many => [:shim_inputs, :shim_outputs],
      :collection => {
        :all => :get,
        :belonging_to => :get,
        :annotated_by => :get,
        :with_type => :get,
        :with_annotation => :get
      },
      :member => {
        :download => :get
      }
  
  map.resources :users, :collection => {:all => :get}
  
  map.resources :home
  
  map.search '/search', :controller => 'search', :action => 'show', :conditions => { :method => [ :get, :post ] }
  map.shim_finder '/shim_finder', :controller => 'search', :action => 'shim_finder', :conditions => { :method => [ :get, :post ] }
  map.link_service '/link_service', :controller => 'service_links', :action => 'create', :conditions => { :method => :post }
  map.unlink_service '/unlink_service/:id', :controller => 'service_links', :action => 'destroy', :conditions => { :method => :delete }
  
  # The priority is based upon order of creation: first created -> highest priority.
  
  # Sample of regular route:
  #   map.connect 'products/:id', :controller => 'catalog', :action => 'view'
  # Keep in mind you can assign values other than :controller and :action
  
  # Sample of named route:
  #   map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
  # This route can be invoked with purchase_url(:id => product.id)
  
  # Sample resource route (maps HTTP verbs to controller actions automatically):
  #   map.resources :products
  
  Annotations.map_routes(map)
  
  # Sample resource route with options:
  #   map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get }
  
  # Sample resource route with sub-resources:
  #   map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller
  
  # Sample resource route with more complex sub-resources
  #   map.resources :products do |products|
  #     products.resources :comments
  #     products.resources :sales, :collection => { :recent => :get }
  #   end
  
  # Sample resource route within a namespace:
  #   map.namespace :admin do |admin|
  #     # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)
  #     admin.resources :products
  #   end
  
  # You can have the root of your site routed with map.root -- just remember to delete public/index.html.
  map.root :controller => "home"
  map.connect "home/login", :controller => "home", :action => "login"
  map.connect "home/logout", :controller => "home", :action => "logout"
  
  # See how all your routes lay out with "rake routes"
  
  # Install the default routes as the lowest priority.
  # Note: These default routes make all actions in every controller accessible via GET requests. You should
  # consider removing the them or commenting them out if you're using named routes and resources.
#  map.connect ':controller/:action/:id'
#  map.connect ':controller/:action/:id.:format'
  map.connect ':controller/:action/'
  
  #  map.connect "home/view/:id", :controller => 'home', :action => 'view', :requirements => {:id => /\d+/ }
  #  map.connect "shims/annotated_by/:user_id", :controller => "shims", :action => "annotated_by", :requirements => {:user_id => /\d+/}
  #  map.connect "shims/belonging_to/:user_id", :controller => "shims", :action => "belonging_to", :requirements => {:user_id => /\d+/}
  #  map.connect "shims/with_annotation/:attribute_name/:value", :controller => "shims", :action => "with_annotation", :requirements => {:attribute_name => /.+/, :value => /.+/}
  #  map.connect "shims/with_type/:shim_type", :controller => "shims", :action => "with_type", :requirements => {:shim_type => /.+/}
  #  map.connect "shims/download/:id", :controller => "shims", :action => "download", :requirements => {:id => /\d+/}
  
  
end
